#include "comm.h"
#include<sys/wait.h>
#include<stdlib.h>
int main()
{
  if(mkfifo(FILE_NAME,0644)<0)
  {
    perror("myfifo");
    return 1;
  }

  int fd = open(FILE_NAME,O_RDONLY);
  if(fd<0)
  {
   perror("open fail!!\n");
   return 2;
  }
  int out =open("file_bak.txt",O_CREAT|O_WRONLY,0644); 

  char msg[128];
  while(1)
  {
    msg[0]=0;
    ssize_t s= read(fd,msg,sizeof(msg)-1);
    if(s>0)
    {
     write(out,msg,s);

      //分析内容让另外的进程做一些事情
    //  msg[s]=0;
    //  printf("client: %s\n",msg);
    //  char *p=msg;
    //  int flag=0;
    //  const char *label="+-*/";
    //  while(*p)
    //  {
    //    switch(*p)
    //    {
    //      case '+': flag=0;
    //        break;
    //      case '-': flag=1;
    //        break;
    //      case '*':flag=2;
    //        break;
    //      case '/':flag=3;

    //        break;
    //    }
    //    p++;
    //  }
    //  char *data1=strtok(msg,"+-*/");
    //  char *data2=strtok(NULL,"+-*/");

    //  int x= atoi(data1);
    //  int y= atoi(data2);
    //  int z=0;
    //  if(flag==0)
    //  {
    //    z=x+y;
    //  }
    //  else if(flag==1)
    //  {
    //    z=x-y;
    //  }
    //  else if(flag==2)
    //  {
    //    z= x*y;
    //  }
    //  else if(flag==3)
    //  {
    //    z=x/y;
    //  }

    //  printf("%d %c %d = %d\n",x,label[flag],y,z);
    //命令的形式通信  
 //    if(fork()==0)
 //    {
 //      //child
 //      execlp(msg,msg,NULL);
 //      exit(1);
 //    }
 //    waitpid(-1,NULL,0); 
    }
    else if(s==0)
    {
      printf("client quit!\n");
      break;
    }
    else 
    {
      printf("read fail\n");
      break;
    }
  }
  close(fd);
  close(out);
  return 0;
}
